import cv2
import matplotlib.pyplot as plt

# 读取图像
image_path = 'caise.jpg@h_1280'
image = cv2.imread(image_path)

# 将图像从BGR转换为灰度图像（如果需要处理灰度直方图）
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 计算灰度直方图
hist = cv2.calcHist([gray_image], [0], None, [256], [0, 256])

# 绘制直方图
plt.figure()
plt.title("Grayscale Histogram")
plt.xlabel("Bins")
plt.ylabel("# of Pixels")
plt.plot(hist)
plt.xlim([0, 256])

# 显示原始图像和直方图
plt.figure()
plt.title("Original Image")
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.axis('off')

plt.show()